Mathematica

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Mathematica
Тип Система компьютерной алгебры
Разработчик Wolfram Research
Операционная система Windows, macOS, Linux
Читаемые форматы файлов .nb, .m, .cdf и другие
Создаваемые форматы файлов -
Состояние В активной разработке
Лицензия Проприетарное программное обеспечение, коммерческая
Ссылки
Сайт wolfram.com/mathematica

Mathematica — проприетарная система компьютерной алгебры, широко используемая для научных, инженерных, математических расчётов. Разработана в 1988 году Стивеном Вольфрамом, дальнейшим развитием системы занята основанная им совместно с Теодором Греем компания Wolfram Research.

Оснащена как аналитическими возможностями, так и обеспечивает численные расчёты; результаты выводятся как в алфавитно-цифровом виде, так и в форме графиков. Вычислительные и аналитические функции обеспечиваются бэкендом, к которому могут подключаться различные пользовательские интерфейсы. Традиционный интерфейс, поставляющийся с системой — вычислительная записная книжка, но имеется возможность работать с бэкендом из интегрированных сред разработки, таких как Eclipse и IntelliJ IDEA; с 2002 года существует свободный инструмент JMath, обеспечивающий интерфейс командной строки к Mathematica посредством интерфейса MathLink[1].

Возможности

Основные аналитические возможности:

Система также осуществляет численные расчёты: определяет значения функций (в том числе специальных) с произвольной точностью, осуществляет полиномиальную интерполяцию функции от произвольного числа аргументов по набору известных значений, рассчитывает вероятности.

Теоретико-числовые возможности — определение простого числа по его порядковому номеру, определение количества простых чисел, не превосходящих данное; дискретное преобразование Фурье; разложение числа на простые множители, нахождение НОД и НОК.

Также в систему заложены линейно-алгебраические возможности — работа с матрицами (сложение, умножение, нахождение обратной матрицы, умножение на вектор, вычисление экспоненты, взятие определителя), поиск собственных значений и собственных векторов.

Система результаты представляет как в алфавитно-цифровой форме, так и в виде графиков. В частности, реализовано построение графиков функций, в том числе параметрических кривых и поверхностей; построение геометрических фигур (ломаных, кругов, прямоугольников и других); построение и манипулирование графами. Кроме того, реализовано воспроизведение звука, график которого задаётся аналитической функцией или набором точек.

Система обеспечивает автоматическую генерацию программного кода на языке Си и его компоновку; при этом сгенерированные программы могут быть использованы автономно. Для создания, обработки и оптимизации си-кода поддерживается использование SymbolicC. Программы могут использовать внешние динамические библиотеки, в том числе поддерживается интеграция с CUDA и OpenCL.

Язык программирования Wolfram

Wolfram — интерпретируемый язык функционального программирования, составляющий лингвистическую основу системы, позволяющий расширять её возможности; более того, система Mathematica в значительной степени написана на языке Wolfram, хотя некоторые функции, особенно относящиеся к линейной алгебре, в целях оптимизации реализованы на Си.

Язык поддерживает и процедурное программирование с применением стандартных операторов управления выполнением программы (циклы и условные переходы), и объектно-ориентированный подход, допускает отложенные вычисления. Также в системе Mathematica можно задавать правила работы с теми или иными выражениями.

Пример кода — список простых чисел выбирается блоками с помощью уровней простых чисел:

In[1] := tm = 2; p = {}; k = 1; Do[
 Do[If[t > 0, 
   For[i = 1, (s = p[[i]]) <= t + 1, i++, 
    If[GCD[k - s, 2 s - 1] != 1, Goto[l]]]]; p = AppendTo[p, k]; 
  Label[l]; k++, {4 (t + 1)}], {t, 0, tm}]; p *= 2; p--; p[[1]]++;
 p
Out[1] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47}

Расширения

Для системы существуют многочисленные расширения, решающие специализированные классы задач. Например, расширение AceFEM предназначено для решения физических и математических задач методом конечных элементов, расширение Analog Insydes — для моделирования, анализа и создания электрических схем, Derivatives Expert — для анализа ценных бумаг и деривативов, Fuzzy Logic — для создания, модификации и визуализации нечётких множеств. Для решения геометрических задач существуют расширения Geometrica (геометрическая энциклопедия с возможностями точного построения геометрических объектов и проверки утверждений) и Geometry Expressions (символьная геометрия). Также как расширения реализованы кодогенераторы для C++ и Fortran 90 и интеграционные пакеты для взаимодействия с Excel и LabView.

Примечания

  1. JMath: A GNU Readline based frontend for Mathematica (англ.) (15 февраля 2002). Дата обращения: 5 мая 2022. Архивировано 7 апреля 2022 года.

Литература

  • Аладьев В. З., Шишаков М. Л. Введение в среду пакета Mathematica 2.2. — М.: Информационно-издательский дом «Филинъ», 1997. — 368 с.
  • Дьяконов В. П. Mathematica 5/6/7. Полное руководство. — М.: «ДМК Пресс», 2009. — 624 с. — ISBN 978-5-94074-553-2.
  • Чарльз Генри Эдвардс, Дэвид Э. Пенни. Дифференциальные уравнения и проблема собственных значений: моделирование и вычисление с помощью Mathematica, Maple и MATLAB = Differential Equations and Boundary Value Problems: Computing and Modeling. — 3-е изд. — М.: «Вильямс», 2007. — ISBN 978-5-8459-1166-7.
  • Шмидский Яков Константинович. Mathematica 5. Самоучитель. Система символьных, графических и численных вычислений. — М.: «Диалектика», 2004. — 592 с. — ISBN 5-8459-0678-4.
  • Глушко В. П., Глушко А. В. Курс уравнений математической физики с использованием пакета Mathematica. — СПб.: «Лань», 2010. — 320 с. — ISBN 978-5-8114-0983-9.
  • Аладьев В. З., Гринь Д. С. Расширение функциональной среды системы Mathematica. — Херсон: Олди–Плюс, 2012. — 552 с. — ISBN 978-966-2393-72-9.
  • Аладьев В. З., Ваганов В. А., Гринь Д. С. Избранные системные задачи в программной среде Mathematica. — Херсон: Олди–Плюс, 2013. — 556 с. — ISBN 978-966-289-012-9.

Ссылки